package com.chenjinyan.zuul.dao;

import com.chenjinyan.zuul.entity.UserEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import javax.transaction.Transactional;
import java.util.Date;
import java.util.List;

/**
 * dd
 *
 * @author chenjinyan
 * @version 1.0
 */
@Repository
public interface UserRepository extends JpaRepository<UserEntity, Long> {

    /**
     * 新增用户
     *
     * @param loginAccount 登陆账号
     * @param password     密码
     * @param netName      网名
     * @param phone        手机号码
     * @param birthday     生日
     * @param email        邮件
     * @param area         所在区域
     * @param name         姓名
     * @param createTime   创建时间
     */
    @Modifying
    @Query(value = "INSERT INTO lost_and_find_user(LOGIN_ACCOUNT,PASSWORD,NET_NAME,PHONE,BIRTHDAY,EMAIL,AREA,NAME,CREATE_TIME) "
            + "VALUES(?1,?2,?3,?4,?5,?6,?7,?8,?9)", nativeQuery = true)
    @Transactional
    int insertUser(String loginAccount, String password, String netName, String phone, Date birthday, String email, String area, String name, Date createTime);

    /**
     * 查找重复用户
     *
     * @param loginAccount 登陆账号
     * @param phone        手机号码
     * @param email        邮箱
     */
    List<UserEntity> findByloginAccountOrPhoneOrEmail(String loginAccount, String phone, String email);


    /**
     * 登陆账号查找重复用户
     *
     * @param loginAccount 登陆账号
     */
    List<UserEntity> findByloginAccount(String loginAccount);

    /**
     * 手机号码查找重复用户
     *
     * @param phone 手机号码
     */
    List<UserEntity> findByPhone(String phone);

    /**
     * 邮箱查找重复用户
     *
     * @param email 邮箱
     */
    List<UserEntity> findByEmail(String email);

    /**
     * 登陆
     *
     * @param loginAccount 登陆账号
     * @param password     手机号码
     */
    List<UserEntity> findByloginAccountAndPassword(String loginAccount, String password);

}
